package com.itheima.workqueue;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.MessageProperties;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * @作者 itcast
 * @创建日期 2020/11/4 11:17
 **/
public class MqProducer2 {
    public static void main(String[] args) throws IOException, TimeoutException {
        // 1. 创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        // 设置连接参数
        connectionFactory.setHost("localhost");
        connectionFactory.setPort(5672);
        connectionFactory.setUsername("mrchen");
        connectionFactory.setPassword("mrchen");
        connectionFactory.setVirtualHost("/itcast");
        // 2. 连接工厂获取一个新的连接
        Connection connection = connectionFactory.newConnection();
        // 3. 创建信道对象
        Channel channel = connection.createChannel();
        // 4. 用信道对象创建队列
        /**
         * queue: * 队列的名称
         * durable: * 是否持久化
         * exclusive: 是否独占该队列
         * autoDelete: 是否自动删除(当所有连接断开后， true自动删除队列)
         * args :  其它队列参数
         */
        channel.queueDeclare("hello",true,false,false,null);
        // 5. 使用信道对象向hello队列发送消息

        for (int i = 0; i < 50; i++) {

            String message = "批量发送的消息"+ i;

            channel.basicPublish("","hello",null,message.getBytes());
        }
        System.out.println("50条消息发送完毕");
        // 6. 关闭和信道和连接对象
        channel.close();
        connection.close();
    }
}
